package com.ruoyi.applet.service.impl;

import java.util.List;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.stereotype.Service;
import com.ruoyi.applet.mapper.MiniVideoMapper;
import com.ruoyi.applet.domain.MiniVideo;
import com.ruoyi.applet.service.IMiniVideoService;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * 视频管理Service业务层处理
 *
 * @author liucan
 * @date 2024-03-27
 */
@Transactional
@Service
public class MiniVideoServiceImpl implements IMiniVideoService {
    @Resource
    private MiniVideoMapper miniVideoMapper;

    /**
     * 查询视频管理
     *
     * @param id 视频管理主键
     * @return 视频管理
     */
    @Override
    public MiniVideo selectMiniVideoById(Long id) {
        return miniVideoMapper.selectMiniVideoById(id);
    }

    /**
     * 查询视频管理列表
     *
     * @param miniVideo 视频管理
     * @return 视频管理
     */
    @Override
    public List<MiniVideo> selectMiniVideoList(MiniVideo miniVideo) {
        return miniVideoMapper.selectMiniVideoList(miniVideo);
    }

    /**
     * 新增视频管理
     *
     * @param miniVideo 视频管理
     * @return 结果
     */
    @Override
    public int insertMiniVideo(MiniVideo miniVideo) {
        miniVideo.setCreationBy(SecurityUtils.getUsername());//创建人
        miniVideo.setCreationTime(DateUtils.getTime());//创建时间
        return miniVideoMapper.insertMiniVideo(miniVideo);
    }

    /**
     * 修改视频管理
     *
     * @param miniVideo 视频管理
     * @return 结果
     */
    @Override
    public int updateMiniVideo(MiniVideo miniVideo) {
        return miniVideoMapper.updateMiniVideo(miniVideo);
    }

    /**
     * 批量删除视频管理
     *
     * @param ids 需要删除的视频管理主键
     * @return 结果
     */
    @Override
    public int deleteMiniVideoByIds(Long[] ids) {
        return miniVideoMapper.deleteMiniVideoByIds(ids);
    }

    /**
     * 删除视频管理信息
     *
     * @param id 视频管理主键
     * @return 结果
     */
    @Override
    public int deleteMiniVideoById(Long id) {
        return miniVideoMapper.deleteMiniVideoById(id);
    }

    /**
     * 播放视频，播放次数加一
     */
    @Override
    public int play(String id){
        MiniVideo miniVideo = miniVideoMapper.selectMiniVideoById(Long.valueOf(id));
        Integer viNum = miniVideo.getViNum() + 1;//播放量加一
        miniVideo = new MiniVideo();//初始化对象
        miniVideo.setViNum(viNum);//加一后的播放人数
        miniVideo.setId(Long.valueOf(id));//要修改的id
        return miniVideoMapper.updateMiniVideo(miniVideo);
    }
}
